001    /**
002     * Created by IntelliJ IDEA.
003     * User: Wei Wang
004     * Date: Apr 2, 2003
005     * Time: 7:54:26 PM
006     */
007    
008    package EVolve.util.settings;
009    
010    import EVolve.Scene;
011    import javax.swing.*;
012    import java.io.*;
013    
014    public abstract class Setting {
015        protected String iniFilename;
016        protected String tags[];
017        protected JTextField contents[];
018        protected JDialog dialog;
019    
020        protected String getFilenameWithPath(String name) {
021            boolean isRunningUnderWindows = System.getProperty("os.name").startsWith("Windows");
022            String userHome = System.getProperty("user.home");
023            String configFile = null;
024            if (userHome == null || userHome.trim().equals("")) {
025                // Fall back to current directory if undefined
026                userHome = ".";
027            }
028    
029            if (!userHome.endsWith(String.valueOf(Character.toString(File.separatorChar)))) {
030                userHome += File.separatorChar;
031            }
032    
033            if (isRunningUnderWindows) {
034                configFile = name + ".ini";
035            } else {
036                configFile = "." + name;
037            }
038            return userHome + configFile;
039        }
040    
041        protected void save() {
042            try {
043                FileWriter writer = new FileWriter(iniFilename);
044                for (int i=0; i<tags.length; i++) {
045                    writer.write(tags[i]+"\n");
046                    writer.write(contents[i].getText()+"\n");
047    
048                }
049                writer.flush();
050                writer.close();
051            } catch (IOException e) {
052                Scene.showErrorMessage("Unable to update file "+iniFilename);
053            }
054        }
055    }